#ifndef PAGE_MANAGER_H
#define PAGE_MANAGER_H

#include "storage_system.h"
#include <stdint.h>

// 页面管理器接口
typedef struct page_manager page_manager_t;

// 页面管理器创建与销毁
page_manager_t* page_manager_create();
void page_manager_destroy(page_manager_t* manager);

// 页面分配与释放
page_id_t page_manager_allocate(page_manager_t* manager);
storage_error_t page_manager_free(page_manager_t* manager, page_id_t page_id);

// 页面状态查询
int page_manager_is_allocated(page_manager_t* manager, page_id_t page_id);
uint32_t page_manager_get_allocated_count(page_manager_t* manager);

#endif // PAGE_MANAGER_H